package org.jzyan.framework.ratelimit.annotation;

import org.redisson.api.RateType;

import java.lang.annotation.*;

/**
 * @FileName : RateLimit
 * @Version : 1.0
 * @Description : 接口限流
 * @Author : jzyan
 * @CreateDate : 2019/12/24 16:13
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RateLimit {

    /**
     * 限流器名称
     *
     * @return
     */
    String name() default "default";

    /**
     * 请求数量
     *
     * @return
     */
    int rate() default 100;

    /**
     * 间隔 秒
     *
     * @return
     */
    int seconds() default 60;

    /**
     * 分布式/单机 默认分布式限流
     *
     * @return
     */
    RateType rateType() default RateType.OVERALL;

}
